<template>
	<!-- 跳转中间页设计 -->
	<div id="my-space-view">
		<p>正在跳转，请稍后...</p>
	</div>
</template>

<script setup lang="ts">
import { onMounted } from 'vue'
import { useLoginUserStore } from '@/stores/useLoginUserStore'
import { useRouter } from 'vue-router'
import { listSpaceByPageUsingPost } from '@/api/spaceController'
import { message } from 'ant-design-vue'
import { SPACE_TYPE_ENUM } from '@/constants/space'

const router = useRouter()
const loginUserStore = useLoginUserStore()

const checkUserSpace = async () => {
	const loginUser = loginUserStore.loginUser
	// 检查用户是否登录
	if (!loginUser?.id) {
		// 如果未登录，跳转到登录页面
		router.replace('/user/login')
		return
	}

	// 如果用户已登录，会获取用户已创建的空间
	const res = await listSpaceByPageUsingPost({
		userId: loginUser.id,
		current: 1,
		pageSize: 1,
		spaceType: SPACE_TYPE_ENUM.PRIVATE,
	})
	if (res.data.code === 0) {
		if (res.data.data?.records && res.data.data.records.length > 0) {
			// 如果用户已创建空间，跳转到我的空间页面
			const space = res.data.data.records[0]
			router.replace(`/space/${space.id}`)
			return
		} else {
			// 如果用户未创建空间，跳转到创建空间页面
			message.warn('请先创建空间')
			router.replace(`/add_space`)
			return
		}
	} else {
		message.error('获取用户空间失败：' + res.data.message)
		router.replace('/')
		return
	}
}

onMounted(() => {
	checkUserSpace()
})
</script>

<style scoped lang="scss"></style>
